Amazon SESの送信承認ポリシーを使って、送信先や送信元情報を制限する
いわさです。
Amazon SESでメールを送信する準備としてEメールアドレスか送信元ドメインの検証を行いますが、送信元ドメイン検証を行った状態だと、検証ドメインの任意のFromアドレスでメール送信が可能です。
ここをもう少しいくつかのFromアドレスに制限したい場合は、送信承認ポリシーが利用出来るので今日は少し触ってみました。
通常の状態
ここでは、mail1.tak1wa.com
を検証済みドメインとして作成しています。
開発者からhoge@mail1.tak1wa.com
で送信したいというので認証情報を公開しました。
これで無事、期待どおりのFromアドレスで送信が出来ます。
送信できたのですがfuga@mail1.tak1wa.com
でも送信出来てしまいます。
管理者がもう少し追加の制限を行いたい場合は、送信承認ポリシーが活用出来ます。
送信承認ポリシーを使う
他アカウントから送信出来るようにする時に送信承認ポリシーを使うケースは多いかもしれません。
送信する際の制限を加える使い方も出来ます。
以下のようにポリシーを設定することで追加のセキュリティレイヤーとなります。
Amazon SES のアクション、リソース、および条件キー - サービス認証リファレンス
ここではいくつか例をご紹介します。
Fromアドレスを絞る
Fromアドレスを制限したい場合は、ses:FromAddress
条件キーが利用出来ます。
以下の場合は、hoge@mail1.tak1wa.com
以外のFromアドレスでは送信が出来なくなります。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Resource": "arn:aws:ses:ap-northeast-1:123456789012:identity/mail1.tak1wa.com", "Action": [ "ses:SendEmail", "ses:SendRawEmail" ], "Principal": "*", "Condition": { "StringNotLike": { "ses:FromAddress": "hoge@mail1.tak1wa.com" } } } ] }
You do not have sufficient access to perform this action. User
arn:aws:sts::550669467088:assumed-role/cm-iwasa.takahito/cm-iwasa.takahito' is not authorized to perform
ses:SendEmail' on resource `arn:aws:ses:ap-northeast-1:123456789012:identity/mail1.tak1wa.com'
To, Cc, Bccアドレスを絞る
逆に、Toアドレスを制限したい場合は、ses:Recipients
条件キーが利用出来ます。
ただし、ToだけでなくCcやBccも制限対象に含まれます。
以下の場合はexample.com
ドメイン以外への送信を禁止しています。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Principal": "*", "Action": [ "ses:SendEmail", "ses:SendRawEmail" ], "Resource": "arn:aws:ses:ap-northeast-1:123456789012:identity/mail1.tak1wa.com", "Condition": { "ForAnyValue:StringNotLike": { "ses:Recipients": "*@example.com" } } } ] }
送信元を制限する(IPアドレス)
送信元自体を制限することも可能で、ここではaws:SourceIp
条件キーを使って、特定の送信元IPアドレス以外からの送信を許可しないように設定しています。
以下の場合は送信元のIPアドレスが203.0.113.224
以外の場合は送信が拒否されます。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Resource": "arn:aws:ses:ap-northeast-1:123456789012:identity/mail1.tak1wa.com", "Action": [ "ses:SendEmail", "ses:SendRawEmail" ], "Principal": "*", "Condition": { "NotIpAddress": { "aws:SourceIp": "203.0.113.224/32" } } } ] }
さいごに
本日は、SESの送信承認ポリシーで追加の制限を行う方法を紹介しました。
本日ご紹介した以外にも、Return-Pathを制限したり、Fromの表示名を制限することも出来ます。
VPCエンドポイントからSMTPサーバーを利用するシーンなども多いと思いますが、追加のセキュリティ設定を行いたい場合に送信承認ポリシーを活用出来るか検討してみてください。